Methods, systems, and computer readable media for short message service (sms) forwarding

ABSTRACT

Methods, systems, and computer readable media for SMS forwarding are disclosed. One method includes performing steps at a message service message proxy separate from a short message service center and implemented on a computing platform including at least one processor. The steps include receiving a message service message routing information response message containing message service message routing information for a first destination. The response message is modified to direct a mobile terminated message service message intended for the first destination to the message service message proxy. The mobile terminated message service message is then received at the message service message proxy and the message service message proxy determines whether a message service message forwarding feature is enabled for the first destination. In response to determining that a message service message forwarding feature is enabled for the first destination, it is determined whether the mobile terminated message service message is eligible for forwarding to a second destination. In response to determining the mobile terminated message service message is eligible for forwarding, signaling is initiated to forward the mobile terminated message service message to the second destination.

PRIORITY CLAIM

This application claims the benefit of U.S. Provisional PatentApplication Ser. No. 61/159,337 filed on Mar. 11, 2009; the disclosureof which is incorporated herein by reference in its entirety.

TECHNICAL FIELD

The subject matter described herein relates to delivering SMS messages.More specifically, the subject matter relates to methods, systems, andcomputer readable media for providing SMS message forwarding.

BACKGROUND

Today, it is possible to setup forwarding for calls (hereinafter, “callforwarding”). Call forwarding is a feature that allows an incoming callto a called party to be redirected to another telephone number of thecalled party's choosing. Two different types of call forwarding mayexist. The first type of call forwarding is called unconditionalforwarding and may include automatically forwarding all calls from afirst telephone number to a second telephone number, regardless of anyconditions. For example, if subscriber B has setup unconditionalforwarding to C, all calls to B will be redirected to C. The second typeof call forwarding is called conditional forwarding and may includeinitially trying to reach the called party at a first number, and if thecalled party is unavailable (i.e., the condition), forwarding the callto a second number. For example, if subscriber B has setup conditionalforwarding to C, all calls to B will first be tried on B and when B isnot available, the call will be redirected to C.

In contrast to forwarding services provided for calls, no such serviceis available for forwarding SMS messages. In other words, present SMSmessage delivery systems do not provide for forwarding SMS messages,either conditionally or unconditionally, as is provided for calls.

Accordingly, in light of these difficulties, a need exists for improvedmethods, systems, and computer readable media for SMS message delivery.

SUMMARY

Methods, systems, and computer readable media for SMS forwarding aredisclosed. One method includes performing steps by a message servicemessage proxy separate from a short message service center andimplemented on a computing platform including at least one processor.The steps include receiving a message service message routinginformation response message containing message service message routinginformation for a first destination. The response message is modified todirect a mobile terminated message service message intended for thefirst destination to the message service message proxy. The mobileterminated message service message is then received at the messageservice message proxy and the message service message proxy determineswhether a message service message forwarding feature is enabled for thefirst destination. In response to determining that a message servicemessage forwarding feature is enabled for the first destination, it isdetermined whether the mobile terminated message service message iseligible for forwarding to a second destination. In response todetermining the mobile terminated message service message is eligiblefor forwarding, signaling is initiated to forward the mobile terminatedmessage service message to the second destination.

A system for providing SMS forwarding is also disclosed. The systemincludes a message service message proxy for receiving a message servicemessage routing information response message containing message servicemessage routing information for a first destination. The responsemessage is modified by the message service message proxy to direct amobile terminated message service message intended for the firstdestination to the message service message proxy. The mobile terminatedmessage service message is then received at the message service messageproxy and the message service message proxy determines whether a messageservice message forwarding feature is enabled for the first destination.In response to determining that a message service message forwardingfeature is enabled for the first destination, the message servicemessage proxy determines whether the mobile terminated message servicemessage is eligible for forwarding to a second destination. In responseto determining the mobile terminated message service message is eligiblefor forwarding, the message service message proxy initiates signaling toforward the mobile terminated message service message to the seconddestination.

The subject matter described herein for providing SMS forwarding may beimplemented using a non-transitory computer readable medium to havingstored thereon executable instructions that when executed by theprocessor of a computer control the processor to perform steps.Exemplary non-transitory computer readable media suitable forimplementing the subject matter described herein include chip memorydevices or disk memory devices accessible by a processor, programmablelogic devices, and application specific integrated circuits. Inaddition, a computer readable medium that implements the subject matterdescribed herein may be located on a single computing platform or may bedistributed across plural computing platforms.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter described herein will now be explained with referenceto the accompanying drawings of which:

FIG. 1 is a message flow diagram illustrating an exemplary basicunconditional SMS forwarding scenario according to an embodiment of thesubject matter described herein;

FIG. 2 is a message flow diagram illustrating an exemplary enhancedunconditional SMS forwarding scenario according to an embodiment of thesubject matter described herein;

FIG. 3 is a message flow diagram illustrating an exemplary conditionalSMS forwarding scenario according to an embodiment of the subject matterdescribed herein;

FIG. 4 is a message flow diagram illustrating an exemplary conditionalSMS forwarding scenario according to an embodiment of the subject matterdescribed herein;

FIG. 5 is a message flow diagram illustrating an exemplary conditionalSMS forwarding scenario according to an embodiment of the subject matterdescribed herein;

FIG. 6 is a message flow diagram illustrating an exemplary SMSforwarding scenario including lawful surveillance and interceptfunctionality according to an embodiment of the subject matter describedherein;

FIG. 7 is a flow chart showing exemplary steps for providing SMSforwarding according to an embodiment of the subject matter describedherein; and

FIG. 8 is a block diagram of an exemplary system for providing SMSforwarding according to an embodiment of the subject matter describedherein.

DETAILED DESCRIPTION

The subject matter described herein includes methods and systems forproviding SMS forwarding. Specifically, a new network element forproviding conditional and/or unconditional SMS Forwarding service isdisclosed. When a global system for mobile communications (GSM)subscriber registers with the SMS Forwarding service described herein,it may be desirable for all of its mobile terminated short messages(MT/SMs) to be subject to the SMS forwarding service. However, aconventional short message service centre (SMSC) may not be the bestnetwork element to perform SMS forwarding because not all MT/SMs for agiven GSM subscriber flow through its own SMSC. For example, inconventional SMS messaging, a GSM subscriber always submits a mobileoriginated short message (MO/SM) to its home SMSC and a GSM SMSC alwaysdelivers the MT/SM directly. SMS messages do not flow between SMSCs.Therefore, if a mobile operator implements SMS forwarding service in itsSMSC, the service would only affect the SMS messages submitted by itsown subscribers, which may be undesirable. Instead, it may be moredesirable for any SMS forwarding service to affect the short messagesdelivered to its subscribers. Due to the limitations of conventionalSMSCs and their operations, the SMS forwarding service described hereinmay be implemented by a new network element. This network element, whichmay hereinafter be referred to as a “message service message proxyserver” or “MT/SM proxy”, should receive all MT/SMs of any subscriberthat registers with the SMS forwarding service. The message servicemessage proxy may be separate from the SMSC and may be implemented on acomputing platform having one or more processors.

FIG. 1 is a message flow diagram illustrating an exemplary basicunconditional SMS forwarding scenario according to an embodiment of thesubject matter described herein. It may be appreciated that basicunconditional SMS forwarding may be the simplest method to implementunconditional forwarding by intercepting the SendRoutingInfoForSmrequest from the SMSC, changing the mobile station internationalsubscriber directory number (MSISDN) parameter, and relaying the requestto the home location register (HLR).

Referring to FIG. 1, network components may include SMSC 100, MT/SMproxy 102, HLR C 104, and serving mobile switching center (MSC) C 106.SMSC 100 may be responsible for relaying and store-and-forwarding ofshort messages between a short messaging entity (SME) and mobilestation. An SME is an entity that may receive or send short messages.The SME may be located in the fixed network, a mobile station, oranother service center. MT/SM proxy 102 may be responsible for providingSMS forwarding service to subscribers. HLR C 104 is a database thatcontains details of each mobile phone subscriber that is authorized touse the GSM core network. It is appreciated that there can be severallogical and/or physical HLRs per public land mobile network (PLMN). MSCC 106 may process requests for service connections from mobile devicesand land line callers and route calls between base stations and thepublic switched telephone network (PSTN). MSC C 106 may also receivedialed digits, create and interpret call processing tones, and routecall paths.

In FIG. 1, subscriber B is the intended recipient of the MT/SM and hasset up unconditional forwarding to C. For example, in step 108, SMSC 100may begin by sending a SendRoutingInfoForSm Request message for MSISDN Bto MT/SM proxy 102. In step 110, MT/SM proxy 102 may modify the MSISDNparameter from B to C, and forward a SendRoutingInfoForSm Requestmessage including MSISDN C to HLR C 104. In response, HLR C 104 mayreturn a SendRoutingInforForSm Response message including messageparameters for international mobile subscriber identity (IMSI) C andserving MSC C 106 in step 112. MT/SM proxy 102 may then receive andforward the SendRoutingInfoForSm Response message, unmodified, to SMSC100 in step 114. In step 116, SMSC 100 may send an MtForwardSm Requestmessage including IMSI C and an identifier for serving MSC C to servingMSC C 106. Serving MSC C 106 may then return MtForwardSm Responsemessage in step 118.

The basic unconditional forwarding described above may have somedrawbacks. For example, it may be difficult to detect (and break)forwarding loops. A simple forwarding loop is a case where B has setupforwarding to C and C to B. Using basic unconditional forwarding,however, if B and C are subscribers of different mobile networks, a loopmight result in SendRoutingInfoForSm requests bouncing between B'snetwork and C's network. Another drawback to basic unconditional SMSforwarding is that while some MT/SM types may be eligible forforwarding, others may not. Exemplary MT/SM types that should not beforwarded may include a subscriber identify module (SIM) data downloadmessage and a GSM status report message. With a SIM data downloadmessage, a mobile operator provisions settings on a mobile. With a GSMstatus report message, an SMSC informs the sender of an SMS about thedelivery result of the SMS (e.g. successful, failed, expired). In orderto overcome the drawbacks of basic unconditional SMS forwarding, amethod for enhanced unconditional forwarding will now be described belowwith respect to FIG. 2.

FIG. 2 is a message flow diagram illustrating an exemplary enhancedunconditional SMS forwarding scenario according to an embodiment of thesubject matter described herein. In contrast to the basic unconditionalforwarding method described above with respect to FIG. 1, the enhancedunconditional forwarding method may transparently relay theSendRoutingInfoForSm request to the HLR and modify theSendRoutingInfoForSm response in such a way that the MtForwardSm requestis routed to the MT/SM Proxy. Upon receipt of the MtForwardSm request,MT/SM Proxy 102 may check whether the MT/SM is eligible for forwarding.If the MT/SM is eligible for forwarding, MT/SM Proxy 102 may issue aSendRoutingInfoForSm and a MtForwardSm for the forwarding destination.

In FIG. 2, subscriber B is the MT/SM's recipient and has set upunconditional forwarding to C. In addition to the network componentsshown in FIG. 1, FIG. 2 includes HLR B 200 that is the HLR for B. Instep 202, SMSC 100 may begin by sending a SendRoutingInfoForSm Requestmessage to MT/SM proxy 102. In step 204, MT/SM proxy 102 may forward theSendRoutingInfoForSm Request message, unmodified, to HLR B 200. HLR B200 may return a SendRoutingInfoForSm Response message including IMSI Band an identifier for serving MSC B (not shown) to MT/SM proxy 102 instep 206. In step 208, MT/SM proxy 102 may manipulate the IMSI andserving MSC parameters to enforce termination of MtForwardSm on MT/SMproxy 102 with the possibility to correlate SendRoutingInfoForSm andMtForwardSm requests. Therefore, MT/SM proxy 102 may sendSendRoutingInfoForSm Response message including IMSI B′ and serving MSCB′ parameters to SMSC 100 in step 208. In response, SMSC 100 may send aMtForwardSm Request message including parameters for IMSI B′ and servingMSC B′ to MT/SM proxy 102 in step 210.

Also in step 210, MT/SM proxy 102 may determine whether the MtForwardSmRequest is eligible for SMS forwarding service. In this case,MtForwardSm Request is eligible, and therefore, in step 212, MT/SM proxy102 may send SendRoutingInfoForSm Request message including MSISDN C forHLR C 104. In step 214, HLR C 104 may return a SendRoutingInfoForSmResponse message to MT/SM proxy 102. In step 216, MT/SM proxy 102 maythen generate and send a MtForwardSm Request message includingparameters for IMSI C and serving MSC C to serving MSC C 106. ServingMSC C 106 may return a MtForwardSm response message to MT/SM proxy 102in step 218 and MT/SM proxy 102 may forward the MtForwardSm responsemessage to SMSC 100 in step 220.

FIG. 3-5 illustrate message flows for conditional SMS forwarding.Conditional forwarding works similar to the enhanced conditionalforwarding, however, before querying the HLR for the forwarddestination, MT/SM Proxy 102 may attempt to deliver the MT/SM to theoriginal recipient. If delivery fails (e.g., an Absent Subscribererror), then MT/SM proxy 102 may attempt to deliver the MT/SM to thedesignated forward destination. In FIGS. 3-5, subscriber B is theMT/SM's recipient and has setup conditional forwarding to C. It isappreciated that FIGS. 3-5 do not display the SendRoutingInfoForSmdialogue for B as this dialogue is the same as for the enhancedunconditional forwarding scenario described above with respect to FIG.2. FIGS. 3-5 illustrate three different conditional forwardingscenarios. In FIG. 3, B is available. In FIG. 4, B is unavailable and Cis available. In FIGS. 5, B and C are both unavailable.

FIG. 3 is a message flow diagram illustrating an exemplary conditionalSMS forwarding scenario according to an embodiment of the subject matterdescribed herein. Referring to FIG. 3, in addition to the networkcomponents shown in FIGS. 1 and 2, serving MSC B 300 is shown. In step302, SMSC 100 may send MtForwardSm Request message including messageparameters for IMSI B′ and serving MSC B′ to MT/SM proxy 102. In step304, MT/SM proxy 102 may modify the message parameters to refer to IMSIB and serving MSC B and send the modified MtForwardSm Request message toserving MSC B 300. In response, serving MSC B 300 may return aMtForwardSm Response message to MT/SM proxy 102 in step 306. Finally, instep 308, MT/SM proxy 102 may forward the MtForwardSm response messageto SMSC 100.

FIG. 4 is a message flow diagram illustrating an exemplary conditionalSMS forwarding scenario according to an embodiment of the subject matterdescribed herein. Referring to FIG. 4, in step 400, SMSC 100 may sendMtForwardSm Request message including message parameters for IMSI B′ andserving MSC B′ to MT/SM proxy 102. In step 402, MT/SM proxy 102 maymodify the message parameters to refer to IMSI B and serving MSC B andsend the modified MtForwardSm Request message to serving MSC B 300. Inresponse, serving MSC B 300 may return a MtForwardSm Response message toMT/SM proxy 102 indicating that subscriber B is not available (e.g.,absent subscriber error) in step 404. In step 406, MT/SM proxy 102 maysend a SendRoutingInfoForSm Request message including MSISDN C to HLR C104. HLR C 104 may respond by returning a SendRoutingInfoForSm Responsemessage to MT/SM proxy 102 in step 408. In step 410, MT/SM proxy 102 maysend a MtForwardSm Request message including IMSI C and serving MSC C toserving MSC C 106. If delivery to C was successful, serving MSC C 106may return a MtForwardSm response message indicating success to MT/SMproxy 102 in step 412. In step 414, MT/SM proxy 102 may forward theMtForwardSm response message indicating success to SMSC 100.

FIG. 5 is a message flow diagram illustrating an exemplary conditionalSMS forwarding scenario according to an embodiment of the subject matterdescribed herein. Referring to FIG. 5, in step 500, SMSC 100 may sendMtForwardSm Request message including message parameters for IMSI B′ andserving MSC B′ to MT/SM proxy 102. In step 502, MT/SM proxy 102 maymodify the message parameters to refer to IMSI B and serving MSC B andsend the modified MtForwardSm Request message to serving MSC B 300. Inresponse, serving MSC B 300 may return a MtForwardSm Response message toMT/SM proxy 102 indicating that subscriber B is not available (e.g.,absent subscriber error) in step 504. In step 506, MT/SM proxy 102 maysend a SendRoutingInfoForSm Request message including MSISDN C to HLR C104. HLR C 104 may respond by returning a SendRoutingInfoForSm Responsemessage to MT/SM proxy 102 in step 508. In step 510, MT/SM proxy 102 maysend a MtForwardSm Request message including IMSI C and serving MSC C toserving MSC C 106. In contrast to FIG. 4, C is not available andtherefore delivery will not be successful. Thus, serving MSC C 106 mayreturn a MtForwardSm response message indicating that subscriber C isalso not available (e.g., absent subscriber error) to MT/SM proxy 102 instep 512. In step 514, MT/SM proxy 102 may forward the MtForwardSmresponse message including the error to SMSC 100.

Preventing Forwarding Loops

A simple approach for preventing forwarding loops may include denyingSMS forwarding service to subscribers of other mobile networks. Forexample, if B has set up SMS forwarding to C, MT/SM Proxy 102 would onlyforward to C if B and C belong to the same mobile network.

A more enhanced method to prevent forwarding loops may be to add amarker to MtForwardSm requests for the forwarding destination. While 3rdGeneration Partnership Project (3GPP) technical specification (TS)23.040, which is incorporated by reference herein, does not define aspecific forwarding marker, it does however allow a vendor to define itsown information elements in the user data header. A specific range forinformation element identifier has been allocated for this purpose.MT/SM proxy 102 may add a vendor-specific information element formessages to forwarded messages. Thus, an enhanced method to preventforwarding loops may be that whenever MT/SM Proxy 102 receives anMtForwardSm request, MT/SM Proxy 102 may check whether thevendor-specific information element for forwarding is present. If theinformation is present, MT/SM Proxy 102 may inspect the data of theinformation element to determine whether the MtForwardSm can beforwarded. It is appreciated that adding a vendor-specific informationelement may cause the User Data parameter of an MtForwardSM to beextended. International Patent No. WO 2005/101872 entitled, “Method forPreventing the Delivery of Short Message Service Message Spam” describesone method for extending the User Data parameter and enforcing theMtForwardSm to the MT/SM proxy and is incorporated by reference herein.

FIG. 6 is a message flow diagram illustrating an exemplary SMSforwarding scenario including lawful surveillance and interceptfunctionality according to an embodiment of the subject matter describedherein. Shown in FIG. 6 is an embodiment of the subject matter describedherein that includes call detail record generation function/lawfulsurveillance (CDR/LS) function 600 which is associated with MT/SM proxy102. According to one aspect, CDR/LS 600 function may be adapted togenerate and store a record that documents the forwarding of a messageservice message from an original called subscriber/B-party to aforward-to called subscriber/B-party. The CDR/LS record may include acomplete copy of the forwarded messaging service message (e.g., routinglayer info+payload info), or may alternatively contain a portion of theinformation in the forwarded message service message. Exemplary messageparameters stored in the record may include, but are not limited to,originating SMSC identifier, calling subscriber/A-party, calledparty/B-party, originating point code (OPC), destination point code(DPC), global title address (GTA), signaling connection control part(SCCP) layer information, TCAP layer information, MAP layer information.In session initiation protocol (SIP) messaging embodiments, the CDR/LSrecord may contain some, or all, of the messaging service message (e.g.,header information, payload). The record may also include date andtimestamp information.

The CDR/LS record may include sufficient information to associate theoriginal messaging service message with the forwarded-to message becausesuch provide information may be useful in tracing the delivery processassociated with a messaging service message that has been forwarded.

CDR/LS 600 may store or cache CDR/LS records in a database co-locatedwith MT/SM proxy 102. In an alternate embodiment, CDR/LS 600 maygenerate records and transmit these records to a remoteapplication/storage facility (not shown) via a local area network (LAN),wide area network (WAN), or other network connection.

In another embodiment, CDR/LS function 600 may include, or have accessto, a list of subscriber identifiers that have been placed under lawfulsurveillance (i.e., watched entities). CDR/LS function 600 may beadapted to check the forwarded-to subscriber identifier and determine ifthe forwarded to subscriber is a watched entity. If the forwarded-tosubscriber is a watched entity, then CDR/LS 600 may generate a record ofthe forwarding event (as described above). The record may be stored orrelayed to a surveillance authority. An exemplary lawful surveillancescenario is described below.

Referring to FIG. 6, in step 602, SMSC 100 may send aSendRoutingInfoForSm request message including MSISDN B to MT/SM proxy102. MT/SM proxy 102 may modify the MSISDN parameter to include MSISDN Cand, in step 604, may forward modified SendRoutingInfoForSm requestmessage to HLR C 104. In step 606, HLR C 104 may return aSendRoutingInfoForSm response message including message parameters IMSIC and serving MSC C. In step 608, MT/SM proxy 102 may forward theSendRoutingInfoForSm message to SMSC 100. In response, in step 610, SMSC100 may send a MtForwardSm request message including message parametersIMSI C and serving MSC C to serving MSC C 106. Finally, in step 612,serving MSC C 106 may return a MtForwardSm response message to SMSC 100.

FIG. 7 is a flow chart showing exemplary steps for providing SMSforwarding according to an embodiment of the subject matter describedherein. Referring to FIG. 7, in step 700, a message service messagerouting information response message may be received, where the responsemessage contains routing information for a first destination. Forexample, a SendRoutingInfoForSm response message for MSISDN B thatincludes IMSI B and serving MSC Bmay be received by an MT/SM proxy fromthe HLR of B.

In step 702, the response message may be modified to direct a MT/SM thatwas intended for the first destination to a MT/SM proxy instead. Forexample, the MSISDN included in the SendRoutingInfoForSm Request messagemay be modified from MSISDN B to MSISDN B′.

In step 704, the MT/SM may be received by the MT/SM proxy. For example,an MtForwardSm request message including IMSI B′ and serving MSC B′ maybe received by the MT/SM proxy 102 from originating SMSC 100.

In step 706, it may be determined whether a message service forwardingfeature is enabled for the first destination. For example, MT/SM proxy102 may consult a list of subscriber identifiers associated with the SMSforwarding service in order to determine whether subscriber B hasenabled SMS forwarding service.

If SMS forwarding service has not been enabled for the firstdestination, then control may proceed to step 708 where conventionalmessage delivery may be performed. For example, conventional messagedelivery may include when an VMSC/SGSN indicates a short messagedelivery failure, the SMSC may send a message to the HLR using theMAP_REPORT_SM_DELIVERY_STATUS procedure. During theMAP_REPORT_SM_DELIVERY_STATUS procedure, the SMSC may indicate thereason for the delivery failure and request that the SMSC be put on alist of SMSCs wanting to be notified when the destination party becomesavailable again. The HLR may set a flag against the destination account,indicating that it is unavailable for short message delivery, and storethe SMSC's address in a message waiting data (MWD) list for thedestination party. Valid flags may include Mobile Not Reachable Flag(MNRF), Memory Capacity Exceeded Flag (MCEF) and Mobile Not Reachablefor GPRS (MNRG). The HLR may then start responding to SRI-for-SMrequests with a failure, indicating the failure reason, andautomatically adding the requesting SMSC's address to the MWD list forthe destination party.

The HLR may be informed of a subscriber becoming available for shortmessage delivery in several ways. First, where the subscriber has beendetached from the network, a reattach may trigger a Location Update tothe HLR. Second, where the subscriber has been out of coverage, but notfully detached from the network, upon coming back into coverage thesubscriber will respond to page requests from the Visitor LocationRegister (VLR) and the VLR may then send a Ready-for-SM (mobile present)message to the HLR. Third, where the MS formerly had its memory full,but now it does not (e.g., the subscriber deletes some texts), aReady-for-SM (memory available) message may be sent from the VMSCNLR tothe HLR. Upon receipt of an indication that the destination party is nowready to receive short messages, the HLR may send an AlertSC mobileapplication part (MAP) message to each of the SMSCs registered in theMWD list for the subscriber, causing the SMSC to start the short messagedelivery process again.

Additionally, the SMSC may go into a retry schedule, attempting toperiodically deliver the SM at certain time intervals, without gettingan alert. The retry schedule interval may depend on the original failurecause so that transient network failures may result in a short retryschedule, while out-of-coverage network failures may result in a longerretry schedule.

If SMS forwarding service is enabled for the first destination, it maybe determined in step 710 whether the MT/SM is eligible for forwardingto a second destination. For example, the MT/SM may determine whetherforwarded-to destination C is eligible for forwarding by consulting alist of subscriber identifiers associated with the SMS forwardingservice. Like above, if SMS forwarding service is not enabled for thesecond destination, control may proceed to step 708 where conventionalmessage delivery may be performed.

If SMS forwarding service is enabled for the second destination, in step712, signaling may be initiated to forward the MT/SM to the seconddestination. For example, the MT/SM may send a SendRoutingInfoForSmrequest message for MSISDN C to the HLR for C. After receiving aSendRoutingInfoForSm response message from HLR C, the MT/SM may send aMtForwardSm request for IMSI C to serving MSC C. The MtForwardSmresponse message received from serving MSC C may be forwarded by theMT/SM to the originating SMSC.

FIG. 8 is a block diagram of an exemplary system for providing SMSforwarding according to an embodiment of the subject matter describedherein. Referring to FIG. 8, message service message proxy 102 may beseparate from an SMSC and may be implemented on a computing platformincluding at least one processor (not shown). Message service messageproxy 102 may include network interface 800 and message service messageforwarding module 802. Network interface 800 may receive a messageservice message routing information response message containing messageservice message routing information for a first destination. Messageservice message forwarding module 802 may modify the response message todirect a mobile terminated message service message intended for thefirst destination to message service message proxy 102. Message servicemessage forwarding module 802 may receive the mobile terminated messageservice message and determine whether a message service messageforwarding feature is enabled for the first destination. In response todetermining that a message service message forwarding feature is enabledfor the first destination, message service message forwarding module 802may determine whether the mobile terminated message service message iseligible for forwarding to a second destination and, in response todetermining the mobile terminated message service message is eligiblefor forwarding, message service message forwarding module 802 mayinitiate signaling to forward the mobile terminated message servicemessage to the second destination.

It will be understood that various details of the subject matterdescribed herein may be changed without departing from the scope of thesubject matter described herein. Furthermore, the foregoing descriptionis for the purpose of illustration only, and not for the purpose oflimitation, as the subject matter described herein is defined by theclaims as set forth hereinafter.

1. A method for forwarding message service messages in a communicationsnetwork, the method comprising: at a message service message proxyseparate from a short message service center (SMSC) and implemented on acomputing platform including at least one processor: receiving messageservice message routing information response message containing messageservice message routing information for a first destination; modifyingthe response message to direct a mobile terminated message servicemessage intended for the first destination to the proxy; receiving themobile terminated message service message; determining whether a messageservice message forwarding feature is enabled for the first destination;in response to determining that a message service message forwardingfeature is enabled for the first destination, determining whether themobile terminated message service message is eligible for forwarding toa second destination; and in response to determining the mobileterminated message service message is eligible for forwarding,initiating signaling to forward the mobile terminated message servicemessage to the second destination.
 2. The method of claim 1 whereindetermining whether the mobile terminated message service message iseligible for forwarding includes determining whether at least oneparameter indicates the presence of looping.
 3. The method of claim 1wherein determining whether the mobile terminated message servicemessage is eligible for forwarding includes determining whether themobile terminated message service message is of a type that should notbe forwarded.
 4. The method of claim 1 comprising generating a messagedetail record (MDR) based on the forwarding of the mobile terminatedmessage service message.
 5. The method of claim 4 comprising: accessinga list of subscriber identifier associated with subscribers that havebeen placed under lawful surveillance; determining whether thedestination subscriber identifier has been placed under lawfulsurveillance; and in response to determining that the destinationsubscriber has been placed under lawful surveillance, relaying the MDRto a surveillance authority.
 6. A method for routing messaging servicemessages in a communications network, the method comprising: at amessage service message proxy separate from a short message servicecenter (SMSC) and implemented on a computing platform including at leastone processor: receiving a mobility management query message associatedwith the delivery of a messaging service message, where the querymessage includes a first message recipient identifier; determining asecond message recipient identifier to which the message should beforwarded; inserting the second message recipient identifier into thequery message; and routing the query message to a mobile locationregister associated with the second message recipient identifier.
 7. Asystem for forwarding message service messages in a communicationsnetwork, the system comprising: a message service message proxy separatefrom a short message service center (SMSC) and implemented on acomputing platform including at least one processor, the message servicemessage proxy including: a network interface for: receiving messageservice message routing information response message containing messageservice message routing information for a first destination; and amessage service message forwarding module for: modifying the responsemessage to direct a mobile terminated message service message intendedfor the first destination to the proxy; receiving the mobile terminatedmessage service message; determining whether a message service messageforwarding feature is enabled for the first destination; in response todetermining that a message service message forwarding feature is enabledfor the first destination, determining whether the mobile terminatedmessage service message is eligible for forwarding to a seconddestination; and in response to determining the mobile terminatedmessage service message is eligible for forwarding, initiating signalingto forward the mobile terminated message service message to the seconddestination.
 8. The system of claim 7 wherein the message servicemessage forwarding module is configured to determine whether the mobileterminated message service message is eligible for forwarding includesdetermining whether at least one parameter indicates the presence oflooping.
 9. The system of claim 7 wherein the message service messageforwarding module is configured to determine whether the mobileterminated message service message is eligible for forwarding bydetermining whether the mobile terminated message service message is ofa type that should not be forwarded.
 10. The system of claim 7comprising a call detail record generation/lawful surveillance module(CDR/LS) being associated with the message service message proxy forgenerating a message detail record (MDR) based on the forwarding of themobile terminated message service message.
 11. The system of claim 10wherein the CDR/LS module transmits the records to a remote applicationor storage facility.
 12. The system of claim 10 comprising a databasebeing co-located with the MT/SM proxy, wherein the CDR/LS module storesor caches the records in the database.
 13. The system of claim 10wherein the CDR/LS module: accesses a list of subscriber identifierassociated with subscribers that have been placed under lawfulsurveillance; determines whether the destination subscriber identifierhas been placed under lawful surveillance; and in response todetermining that the destination subscriber has been placed under lawfulsurveillance, relays the MDR to a surveillance authority.
 14. Anon-transitory computer readable medium comprising computer executableinstructions embodied in a tangible computer readable medium and whenexecuted by a processor of a computer performs steps comprising: at amessage service message proxy separate from a short message servicecenter (SMSC) and implemented on a computing platform including at leastone processor: receiving message service message routing informationresponse message containing message service message routing informationfor a first destination; modifying the response message to direct amobile terminated message service message intended for the firstdestination to the proxy; receiving the mobile terminated messageservice message; determining whether a message service messageforwarding feature is enabled for the first destination; in response todetermining that a message service message forwarding feature is enabledfor the first destination, determining whether the mobile terminatedmessage service message is eligible for forwarding to a seconddestination; and in response to determining the mobile terminatedmessage service message is eligible for forwarding, initiating signalingto forward the mobile terminated message service message to the seconddestination.
 15. A non-transitory computer readable medium comprisingcomputer executable instructions embodied in a tangible computerreadable medium and when executed by a processor of a computer performssteps comprising: at a message service message proxy separate from ashort message service center (SMSC) and implemented on a computingplatform including at least one processor: receiving a mobilitymanagement query message associated with the delivery of a messagingservice message, where the query message includes a first messagerecipient identifier; determining a second message recipient identifierto which the message should be forwarded; inserting the second messagerecipient identifier into the query message; and routing the querymessage to a mobile location register associated with the second messagerecipient identifier.